package cn.hxsteel.purview.model.vo;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * 会话的值对象
 * 
 * @param <T> 实体类的类型
 */
public class SessionVO< T >
{
    private int                         uid;
    private T                           customerPO;
    private Set< Short >                roleIDSet   = new HashSet< Short >();
    private Set< String >               actionIDSet = new HashSet< String >();
    private Set< Short >                moduleIDSet = new HashSet< Short >();
    private Map< Short, Set< String > > actionMap   = new HashMap< Short, Set< String > >();
    
    /**
     * 用户标识
     */
    public int getUid()
    {
	return uid;
    }
    
    /**
     * 用户标识
     */
    public void setUid( int uid )
    {
	this.uid = uid;
    }
    
    /**
     * 用户的持久对象
     */
    public T getCustomerPO()
    {
	return customerPO;
    }
    
    /**
     * 用户的持久对象
     */
    public void setCustomerPO( T customerPO )
    {
	this.customerPO = customerPO;
    }
    
    /**
     * 角色标识的键集
     */
    public Set< Short > getRoleIDSet()
    {
	return roleIDSet;
    }
    
    /**
     * 角色标识的键集
     */
    public void setRoleIDSet( Set< Short > roleIDSet )
    {
	this.roleIDSet = roleIDSet;
    }
    
    /**
     * 动作标识的键集
     */
    public Set< String > getActionIDSet()
    {
	return actionIDSet;
    }
    
    /**
     * 动作标识的键集
     */
    public void setActionIDSet( Set< String > actionIDSet )
    {
	this.actionIDSet = actionIDSet;
    }
    
    /**
     * 模块标识的键集
     */
    public Set< Short > getModuleIDSet()
    {
	return moduleIDSet;
    }
    
    /**
     * 模块标识的键集
     */
    public void setModuleIDSet( Set< Short > moduleIDSet )
    {
	this.moduleIDSet = moduleIDSet;
    }
    
    /**
     * 动作的地图<模块标识,动作标识的键集>
     */
    public Map< Short, Set< String > > getActionMap()
    {
	return actionMap;
    }
    
    /**
     * 动作的地图<模块标识,动作标识的键集>
     */
    public void setActionMap( Map< Short, Set< String > > actionMap )
    {
	this.actionMap = actionMap;
    }
    
}